package com.headfirst.dmp.report.tags

import org.apache.commons.lang.StringUtils
import org.apache.spark.sql.Row

/**
  * 处理APP相关标签(广告类型&名称、渠道)
  */
object Tags4APPTag extends TagsTrait {

  /**
    * 打app标签的方法
    *
    * @param args
    * @return
    */
  override def makeTags(args: Any*): Map[String, Int] = {

    //创建一个空Map，用于存储数据
    var map = Map[String,Int]()

    //将数据转换为Row对象
    val row: Row = args(0).asInstanceOf[Row]
    
    val rules: Map[String, String] = args(1).asInstanceOf[Map[String,String]]

    //广告类型和名称
    val appId: String = row.getAs[String]("appid")
    val appName :String =row .getAs[String]("appname")

    if(StringUtils.isBlank(appName)){
      appName.contains(appId) match {
        case true => map += ("APP"+rules.get(appId) -> 1)
      }
    }

    //渠道
    val channelId: Int = row.getAs[Int]("adplatformproviderid")
    if(channelId>0) {
      map += (("CN"+channelId,1))
    }

    //返回map
    map
  }
}
